CODAP-1341: suppress focus outline on CFM menu list container (forward-port of #430) - #435
Merged
Merged
Conversation
React Aria gives the menu list container (.menu-list-container) programmatic keyboard focus when a menu opens. The browser's :focus-visible heuristic resolves that focus inconsistently, and when it resolves true the browser draws its default focus outline around the whole menu container. The container is never a meaningful keyboard focus target -- keyboard users navigate the menu items, which carry their own :focus-visible outline -- so suppress the outline on the container itself. This is the CFM-side counterpart to CODAP PR #2585. That PR fixes the menu drop shadow, which is broken by a CODAP-specific global box-shadow reset and so must be fixed in CODAP. The stray focus outline, however, is a CFM rendering artifact that appears in any host app, so the CFM should own it. Once this ships, the matching outline rule in CODAP PR #2585 becomes redundant. Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com> (cherry picked from commit 1cced6c)
kswenson
marked this pull request as ready for review
August 27, 2026 00:08
Member
Author
|
Merging without additional review, as it was already reviewed/approved in #430. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Forward-port of #430 (CODAP-1341) from
v2.2.xtomaster.Why
#430 merged to
v2.2.xon 2026-05-21, shortly after #426 had swept the earlier v2.2.x hotfixes intomaster. It landed just past that sweep and was never picked up, somasterhas been missing the fix since.Audit of everything currently on
v2.2.xbut not onmaster:89c5a98c0799bc64deb0dSo this closes the last remaining gap between the two branches.
Change
Cherry-picked cleanly with
git cherry-pick -x, no conflicts. Seven added lines insrc/style/components/dropdown-menu.styl:React Aria gives the menu list container programmatic focus when a menu opens; it is never a meaningful keyboard focus target, since keyboard users navigate the menu items, which carry their own
:focus-visibleoutline. The original commit message carries the full rationale, and the commit retains its(cherry picked from commit 1cced6c)trailer.Verification
npm testnpm run lintnpm run buildVerified absent from
masterbefore the pick: the.menu-list-container:focusselector existed onv2.2.xbut not in master's copy of the file.Style-only change with no dependencies; independent of #434.
🤖 Generated with Claude Code